From: awilliam@xenbuild.aw Date: Tue, 12 Sep 2006 17:29:02 +0000 (-0600) Subject: [IA64] Add xen boot option "dom0_vcpus_pin" X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15666 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=2e32ced759dcc1bc410cdc66f3e2d11a2cf7c41b;p=xen.git [IA64] Add xen boot option "dom0_vcpus_pin" This patch adds the xen boot option to pin Domain-0 VCPUs. Signed-off-by: Kouya SHIMURA Signed-off-by: Masaki Kanno --- diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c index 2073fd52c7..17ca6ff40e 100644 --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -54,6 +54,7 @@ unsigned long dom0_align = 64*1024*1024; static unsigned int dom0_max_vcpus = 1; integer_param("dom0_max_vcpus", dom0_max_vcpus); +extern int opt_dom0_vcpus_pin; extern unsigned long running_on_sim; extern char dom0_command_line[]; @@ -1020,9 +1021,12 @@ int construct_dom0(struct domain *d, dom0_max_vcpus = MAX_VIRT_CPUS; printf ("Dom0 max_vcpus=%d\n", dom0_max_vcpus); - for ( i = 1; i < dom0_max_vcpus; i++ ) + for ( i = 1; i < dom0_max_vcpus; i++ ) { if (alloc_vcpu(d, i, i) == NULL) printf ("Cannot allocate dom0 vcpu %d\n", i); + else if (opt_dom0_vcpus_pin) + d->vcpu[i]->cpu_affinity = cpumask_of_cpu(i); + } /* Copy the OS image. */ loaddomainelfimage(d,image_start); diff --git a/xen/arch/ia64/xen/xensetup.c b/xen/arch/ia64/xen/xensetup.c index 8c2140972e..12c6850aa7 100644 --- a/xen/arch/ia64/xen/xensetup.c +++ b/xen/arch/ia64/xen/xensetup.c @@ -49,6 +49,10 @@ extern void mem_init(void); extern void init_IRQ(void); extern void trap_init(void); +/* opt_dom0_vcpus_pin: If true, dom0 VCPUs are pinned. */ +unsigned int opt_dom0_vcpus_pin = 0; +boolean_param("dom0_vcpus_pin", opt_dom0_vcpus_pin); + /* opt_nosmp: If true, secondary processors are ignored. */ static int opt_nosmp = 0; boolean_param("nosmp", opt_nosmp); @@ -517,6 +521,10 @@ printk("num_online_cpus=%d, max_cpus=%d\n",num_online_cpus(),max_cpus); 0) != 0) panic("Could not set up DOM0 guest OS\n"); + /* PIN domain0 VCPU 0 on CPU 0. */ + if (opt_dom0_vcpus_pin) + dom0->vcpu[0]->cpu_affinity = cpumask_of_cpu(0); + if (!running_on_sim) // slow on ski and pages are pre-initialized to zero scrub_heap_pages();